home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Games of Daze
/
Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso
/
x2ftp
/
msdos
/
gamesrc
/
rtankexe
/
manual.doc
< prev
next >
Wrap
Text File
|
1995-03-07
|
34KB
|
740 lines
ROBOTANK
BECAUSE "WAR IS HELL!"
VERSION 1.0
RELEASE DATE 6/89
ROBOTANK was written by:
ALEXANDER WALSH
31 Cumberland Cres.
St. John's, Newfoundland
CANADA, A1B-3M4
All rights reserved.
System Requirements
ROBOTANK 1.0 will run on all IBM PC, XT, AT and 100%
compatible computers. It requires a minimum of 512K RAM and
one floppy drive. ROBOTANK runs on a CGA video display, and
requires DOS version 2.0 or higher.
About ROBOTANK
ROBOTANK is a very player involved tank battle game now
available for the IBM PC and it's compatables. ROBOTANK
allows the player to create, write, test, and debug the
computer logic for an electronic tank with a variety of
weapons and hunting options. It allows various players to
battle up to ten of their creations in several different
graphical "battleground" setting and watch the results of
their efforts unfold before their eyes.
ROBOTANK incorporates a powerful-but-simple tank battle
language called TINK, which allows the player to program his
tank to practice ANY variety of offensive or defensive
strategies against the enemy. So, not only does the player
get to enjoy the thrill of battle, but also the experience
of writing working computer programs.
ROBOTANK as a language for tank combat
ROBOTANK is unlike its counterparts in the arcade game
market in that is a complete battle computer language. As
such, it necessarily lacks the intuitively obvious but
limiting user interface found in such programs as HEAVY
METAL and ARCTICFOX.
Although ROBOTANK seems at first a bit more difficult
to use than these other products this is only because the
program's commands must be typed in rather than picked from
a list. This language interface offers much more versatility
and flexabilty and does not require odd keyboard sequences
or special hardware to utilize.
Here is an example of a complete ROBOTANK battle
program for a tank which chases and attacks enemy vehicles.
Notice how straight-forward the program is and how similiar
it is to what a person playing a typical tank arcade game
would actually do:
----------------------------------------------------------------
make dir
:align ; Turn the tank's turrent ...
aim ctdir ; toward the tanks front.
jneq ctdir,cgdir,:align ; Keep turning until there.
lock 1 ; Syncronize the turrent and tank.
:again
scope dir ; Check scope for enemy location.
face dir ; Turn in that direction.
jneq ctdir,dir,:again ; Are we facing it yet? No, go back.
fire ; Yes, ATTACK
move ; and move towards it
goto :again ; And do it again!!!
----------------------------------------------------------------
Remember that in learning any language, proficiency
comes with practice. With just a little practice, you will
find the TINK programming language for combat capable of
fulfilling your most creative battle plans with ease.
Creating a tank for combat with ROBOTANK
The creation of a battle tank with ROBOTANK begins in
the ROBOTANK control center (ROBOTANK.EXE). Here, you give
your tank a name, a particuliar chassis size, and a
selection of weapons and additional hunting devices. These
selections are based on the type of tank you have imagined.
For example, a patrol tank would have to be fast and have a
wide selection of scanning options, while having few
weapons. Meanwhile, the offensive tanks would have heavy
armor and weaponry, keeping tracking equipment to a minimum.
You would then move on to the tank logic editor
(selected from the on-screen menu bar). Here, you write your
program line by line, perhaps adding previously-saved or
'stock' subroutines. Here also you tell how your tank should
go about it's planned duties, how it should react when hit,
what to do when it spots an enemy, etc.
Then, after selecting an appropriate terrain, you test
your tank in the battlefield, against either supplied
enemies, or ones of your own or your friends design. If the
tank does not perform the way you wished, go back to the
editor, fix the errors, and try again.
Finally, you call up your friends and tell them to
bring over the tanks they have designed, and battle each off
in a series of round-robin tournaments. May the best tank
win.
Starting ROBOTANK: the main menu
If you are in the ROBOTANK subdirectory, typing
ROBOTANK at the system level prompt (C>) will bring up the
ROBOTANK main menu and a screen that looks similiar to this:
To select from the menu or picklist, press the arrow
keys until the option you want is highlighed, then press
return.
FILE/LOAD: allows you to load an existing TANK
SPECIFICATIONS SHEET from the disk.
FILE/SAVE: allows you to save a new TANK SPECIFICATIONS
SHEET to the disk.
FILE/SHELL: allows you to exit to a DOS shell. Typing
EXIT at the DOS prompt returns you to
ROBOTANK.
FILE/EXIT: exits the ROBOTANK program, returning you to
DOS.
CONFIG/NAME: allows you to modify the name of your tank.
CONFIG/CHASSIS: allows you to select the chassis size of your
tank.
CONFIG/WEAPONS: allows you to select which weapons your tank
should carry, each one has different ranges
and damage ratings.
CONFIG/EXTRAS: allows you to select which hunting/tracking
equipment your tank should carry.
EDIT: Enter the ROBOTANK program editor
TEAMS/PLAYERS: allows you to enter the names of the tanks
that will compete on the battleground.
TEAMS/NOTEAM: allows you to define which tanks will not
belong to any particular team.
TEAMS/TEAM A: allows you to define which tanks will belong
to TEAM "A"
TEAMS/TEAM B: allows you to define which tanks will belong
to TEAM "B"
TERRAIN/GRASS: selects a grassy terrain for battle
TERRAIN/SWAMP: selects a swamp terrain for battle
TERRAIN/FOREST: selects a forest terrain for battle
TERRAIN/VILLAGE: selects a village terrain for battle
BATTLE: Take the currently selected contestants into
battle
Tank chassis type descriptions:
Your tank may have one of three different chassis
types; LIGHTWEIGHT, REGULATION, and HEAVYWEIGHT. The
lightweight chassis has a move rate of 1:1 (which means it
will move once for every MOVE command issued), while the
regulation and heavyweight tanks have move rates of 2:1 and
3:1 respectively. However, the lightweight tank has a
maximum payload of 1000 lbs, as compared to 2000 and 3000 of
the regulation and heavyweight chassis's.
Damage capacity is another concern when choosing a
chassis-type. The lightweight type may sustain up to 10
points of damage, in relation to the 20 points of the
regulation, and 30 points of the heavyweight chassis-types.
Choosing the correct type of tank frame is one of the most
critical decisions in making a succesful tank. It must be
based on the purpose you have intended for you vehical. A
small and fast patrol tank, will be much more efficient than
a slow clunky one, while a lightweight tank will never
survive intense battle! The choice is yours.
Choosing a tanks weaponry
Weapons are rated on a variety of points, which are:
Range how far a shot will travel
Damage what sort of injuries it can cause to an
enemy tank
Reload Time how quickly can you shoot multiple shots
Rounds how many shots can the tank carry for that
weapon
Weight how much the gun and ammo weight in pounds
Other special features that make that weapon unique
If your tank requires weaponry, you may use the table
below to help you choose the ones that will serve your
purpose best:
RANGE DAMAGE RELOAD ROUNDS WEIGHT
OTHER
MACHINE 8mm 50 1 0 50 100
MACHINE 16mm 45 2 0 30 200
LASER 10 8 9 40 750 *1
CANNON 15 15 5 5 800
ROCKET 40 10 4 10 650
MINE 1 10 0 1 25 *2
RADIO MINE 1 10 0 1 50 *3
NOTES:
*1 The range of laser fire is covered in ONE move, not one unit
per move as with other weapons.
*2 A mine will stay in location until a tank hits it. It is
then destroyed.
*3 A radio mine has the same characteristics as a normal mine
(see note *2). However, a radio mine will transmit the
message "99, x, y" (where x and y are the co-ordinates of
the mine when it exploded) on the channel the tank was set
to when the mine was released.
The ROBOTANK Editor
If you have selected the EDIT option from the main
menu, you will be in the ROBOTANK editor. The screen should
have a few lines at the top that look as follows:
FILE: C:\ROBOTANK\PATROL.TXT IN Line: 1 Col: 1
Block Search Go to Text format Window File F10 for pulldown
This information relates to the current file and the
tools available to manipulate it. At the left is the editor
menu bar, this is similiar to the main control panel menu in
operation. Press F10 to access the menu bar, and use the
arrow keys to move the highlight bar to the desired option
and press enter to select it.
At the right is the current cursor column and line
number. This information is for reference, especially when
locating errors (which are reported by line number). Also
indicated is the status of the INS key on your keyboard. If
INSERT mode in ON, then characters you type will be inserted
before the character just to the right of the cursor. If
INSERT mode is OFF, then characters to the right of the
cursor will be overwritten.
Basic program editing features at as follows:
ARROW KEYS Move cursor around document
PGUP, PGDN Move cursor around document
HOME Move cursor to start of line
END Move cursor to end of line
DEL Erase character at right of cursor
BACKSPACE Erase character at left of cursor
F10 Move up into menu bar
CTRL-Y Delete line
CTRL-K B Block start
CTRL-K K Block end
CTRL-K H Hide/Show block
CTRL-K C Copy block
CTRL-K V Move block
CTRL-K Y Erase block
CTRL-K W Write block to disk
CTRL-K R Read block from disk
ROBOTANK program compiler error codes
After selecting the BATTLE option from the main menu,
ROBOTANK will attempt to load each tank into memory and
process each as they would be in battle. If the situation
should arise that there is a mistake in the program, or some
other difficulty arises, ROBOTANK will display an error
message. The message is in the form:
Syntax error L23
- GOGO newline
Which tells the error and the line number in which the
error occured. Below the error message, ROBOTANK will
display the problem causing line.
After all the programs have been loaded, and errors
have occured, control will return to the main menu and the
battle will be aborted until the tank in error is repaired.
Otherwise, battle will commence!
Some error message you may receive are:
COMPILER ERROR An internal error out of your control, this
should be reported to the author.
SYMBOL EXISTS A symbol defined in the tanks program (with
the MAKE command) has already been defined
earlier.
SYMBOL UNDEFINED A symbol is used in the program, which was
not defined with the MAKE command.
SYNTAX ERROR The most common error! A syntax or spelling
mistake may occur due to a stray character in
the file or a misplaced command name, etc.
SYMBOL REQUIRED AS FIRST ARGUMENT This error states that
the first argument
following the actual
command must be a symbol
(defined with the MAKE
command) and not a
constant or line label.
LABEL ALREADY USED A label was defined (by preceeding the
label name with a colon), that was used
previously in the program.
LINE REFERENCE NOT ALLOWED AS ARGA line reference was
supplied as an argument
to a command when a
symbol or constant was
expected.
LINE REFERENCE REQUIRED A symbol or contant was supplied as
an argument to a command when a
line reference was required.
TOO FEW/MANY ARGUMENTS SUPPLIED The incorrect number of
arguments were supplied for
the operation of a command.
Check the commands context
again in the manual.
OUT OF RAM Your computer has insufficient RAM to load the
desired tank programs.
Using the ROBOTANK battle simulator
Once battle has begun, the screen will show an above
view of the battlefield. It will also be tracking the action
of a particular tank. The name and vital information of that
tank is displayed on the bottom four lines of the display.
This information looks something like this:
1. PATROL
DAMAGE: 10
VAR[00] = 34
Press SPACE for next, or ESC to end battle
The simulator is now in AUTOMATIC mode, which means
that it will adjust it's display in order to keep the
displayed tank on-screen. To view the next tank on the list,
press the SPACE BAR. The information on the bottom of the
screen will update and this new tank will be tracked.
If you wish to move the screen in a manner different to
that of the simulator, press the ARROW KEYS in the direction
you wish to move. This will place you in MANUAL mode (Press
the space bar to resume to AUTOMATIC mode).
If you know the number of the tank you wish to monitor,
simply press the number of the tank (from 1 to 9, or 0 for
tank number 10). If that tank is not available, tracking
will be moved to the next active tank.
On the bottom of the display is the line
VAR[xx] = yy
where xx and yy are integer numbers. They represent the
contents of the variables that tank is using internally. The
first eleven variables are reserved for the predefined
constants, these are defined as follows:
0 - WHEREX 1 - WHEREY 2 - CGDIR 3 - CTDIR
4 - LOADED 5 - HIT 6 - NOMOVE 7 - TEAM
8 - MYTEAM 9 - BLOCKAGE 10- MESSAGE 11- CHANNEL
After these variables, the variable defined in the
tanks program are listed (in order of the occurance of the
MAKE command in the program).
Other keys which may be used while in the simulator are:
ESC End battle and display results
. View next variable contents
, View previous variable contents
ENTER Update screen information display
ROBOTANK COMMANDS
----------------------------------------------------------------
var
Is a symbol/variable of up to 15 characters.
The first character must be A-Z
(lower-case converted to upper-case)
These are created with the MAKE command (see below)
:line
Is a line-reference with the same spec's as a symbol
num
Can be either a symbol or a numeric constant (-32000 to 32000)
----------------------------------------------------------------
MAKE var
Make space for symbol named "var"
(should appear at the start of source file)
SELECT num
Select weapon "num" as follows:
1 = MACHINE GUN 8mm
2 = MACHINE GUN 16mm
3 = LASER
4 = CANNON
5 = ROCKET
6 = MINE
7 = RADIO MINE
JEQ num1,num2,:line
if num1 = num2 go to ":line"
JLT num1,num2,:line
if num1 < num2 go to ":line"
JGT num1,num2,:line
if num1 > num2 go to ":line"
JNEQ num1,num2,:line
if num1 <> num2 go to ":line"
LEFT
Turn tank counter-clockwise
RIGHT
Turn tank clockwise
GLEFT
Turn GUN counter-clockwise
GRIGHT
Turn GUN clockwise
SET var,num
Sets symbol "var" to "num"
ADD var,num
Adds "num" to the current value of "var"
RAND var,num
Places a random value from 1-"num" into "var"
MOVE
Move tank in current direction and sets the NOMOVE register
(see below)
GOTO :line
Move program execution to ":line"
FIRE
Fire currently selected weapon in current gun direction
CALL :line
Call sub-routine beginning at ":line"
SCOPE var
Places a number from 1 to 8 in "var" corresponding to the
general direction of the closest enemy tank. Returns a 0 if
no other enemy tank is present.
RETURN
Return from sub-routine which was accessed via the CALL
command.
RADAR var
Places a 0 in "var" if no other enemy tank within 40 units
of players tank otherwise contains a number from 1 to 40
corresponding to the distance the other tank is away.
NOTE: if more than one tank is within 40 units, RADAR will
return the distance to the closest enemy tank.
SCAN var, num
Places a 1 in "var" if an enemy tank is present in the
direction indicated by "num", otherwise SCAN places a 0 in
var.
AUTO num
Set automatic tank movement ON when NUM is greater than
zero, or OFF when NUM =0.
When AUTO is ON, the tank will attempt to move after the
execution of EVERY command without having to issue a MOVE
command.
LOCK num
Set automatic GUN and TANK syncronization ON when NUM is
greater than zero, or OFF when NUM = 0.
When automatic gun and tank sync is ON, whenever a LEFT or
RIGHT command is called, the tanks gun will move in that
same direction. IE: if tank is in position 3 and gun is in
position 5, after a LEFT command the tank will be at 2 and
the gun will be at 4. However, GLEFT and GRIGHT do NOT
effect the position of the tank, they may be used freely.
CHANNEL num
Sets the tanks current radio channel to NUM. All following
TX and RX commands will affect that channel.
TX num1, num2, num3
Transmit message NUM1, NUM2, and NUM3 out on the radio
channel currently set by the CHANNEL command.
RX sym1, sym2, sym3
Read in a received message into symbols SYM1, SYM2, and
SYM3. If there was no message available then SYM1-3 will
contain zeros, otherwise they will contain the values sent
by the TX command. NOTE: The radio must be monitoring the
channel with the CHANNEL command in order to capture the
information.
FACE num
Turns the TANK the best way (LEFT or RIGHT) in order to face
direction NUM.
If it is equal to move LEFT or RIGHT in order to reach the
destination, FACE will randomly pick either LEFT or RIGHT.
AIM num
Turns the tanks GUN the best way (LEFT or RIGHT) in order to
face direction NUM.
If it is equal to move LEFT or RIGHT in order to reach the
destination, FACE will randomly pick either LEFT or RIGHT.
CONV numX,numY,var
Calculates the direction needed to reach coordinates
(numX,numY) from the tanks current location (whereX,
whereY). The required direction is placed in VAR.
TANK and GUN Directions:
1
8 | 2
\ | /
7 --- + --- 3
/ | \
6 | 4
5
PREDEFINED SYMBOL CONSTANTS:
WHEREX
Holds the tanks current X co-ordinate from 1 to 119
WHEREY
Holds the tanks current Y co-ordinate from 1 to 74
CGDIR
Holds the tank gun's current direction from 1 to 8
CTDIR
Holds the tanks current direction from 1 to 8
LOADED
Contains a 1 when ready to fire, or 0 when loading
HIT
Contains a 1 when your tank has been hit and 0 otherwise.
This register is reset to 0 everytime it is used.
NOMOVE
Holds a 1 when your tank is prevented from moving by a wall
or other tank.
It is set everytime the MOVE command is executed.
TEAM
Contains the team of the tank detected by the last RADAR,
SCAN, or SCOPE command.
0 = NONE
1 = TEAM A
2 = TEAM B
MYTEAM
Contains your team identification.
0 = NONE
1 = TEAM A
2 = TEAM B
MESSAGE
Contains 1 if there is a message waiting to be read on the
current radio channel or else it will contain 0
BLOCKAGE
Contains a number corresponding to the type of object
blocking the movement of a tank, as follows:
0 = NO OBJECT
1 = FIXED OBJECT (Tree, wall, rubble, etc)
2 = ANOTHER TANK
CHANNEL
Contains the radio channel currently set with the CHANNEL
command.
Final Notes:
The demonstration diskette is NOT a complete working
version, the following features are not implemented yet, but
they WILL be included in the final version:
- The SELECT command will select other weapons, but each
weapon has the same abilities (same range, same damage,
same re-load speed).
- Tank weight is not taken into account yet, a
light-weight tank chassis moves the same speed as a
heavy one. Also, you can add all the options you wish
without penelty.
- Moveing over a swamp terrain does not slow down your
tank as it should do.
- Not all the math commands are in place, ADD does work,
while SUB, MULT, DIV do not and are not recognized.
- MINES are not working, you cannot use these at all
(PS. A radio mine is a mine that transmits it current
location on a set channel before it blows up ... useful
for tracking).
- All tanks die when they have recieved 30 points of
damage. In the final version, lighter tanks will
destroy easier than heavier ones.
- Unlimited shots. In the final version, your would only
have a certain number of shots with each weapon.
Here is a list of some other ideas I have planned to
include in the final version of the game, it is in these
features that I can see the programs true flexability coming
through:
- Better looking graphics ... my graphical talents are a
bit lacking.
- Support for VGA
- Sound! I have not touched the sound aspect of the game
yet.
- A full program debugger for viewing program source code
while in battle (this will slow down combat speed, but
it would definitely be required for the novice player).
- A new program editor. Now I am using a modified version
of MICROSTAR from the Borland TURBO PASCAL editor
toolbox.
- Split screen display for viewing two tanks at once
during combat.
- A variety of new battle commands including:
LOOP a command to provide FOR/NEXT loop abilities
CONTACT will tell if a fired shot hit it's target.
and many more.
- Marking TEAM A as a "good team" and TEAM B as a "bad
team" for use with other features (see next upgrade).
- Some simulator controlled features, such as running
villagers that the tanks can try to rescue or shoot
(depending on their team), or rolling boulders, etc.
- A selection of new tank attachments such as cloaking
devices, pontoons for swamp travel, a copter-top for
air travel, etc.
- Expanded program text commands such as "INCLUDE
filename", to include text from another file or "CHAIN
filename" to execute another pre-compiled tank file.
There are many other features that could be added, but
for the purposes of this demo I have only mentioned a few.
I hope you enjoy the game as must as I have, and hope
to hear from you soon.
Sandy Walsh